#pragma once
#include <iostream>
using namespace std;
#include <unistd.h>
#include <string>
#include <pthread.h>
#include <queue>
#include <vector>
#include<mutex>


namespace zq
{
    template<class T>
    class blockqueue
    {
    public:
        blockqueue(const int& maxcap = 5):_maxcap(maxcap){
            pthread_mutex_init(&_mutex,nullptr);
            pthread_cond_init(&_ccond,nullptr);
            pthread_cond_init(&_pcond,nullptr);
        }

        void push(const T& in){

        }
        void pop(T* out){

        }

        ~blockqueue(){

        }
    private:
        queue<T> _q;//阻塞队列
        int _maxcap;//最大限度
        pthread_mutex_t _mutex;
        pthread_cond_t _ccond;
        pthread_cond_t _pcond;
    };
}
